package com.ruoyi.activiti.domain;

import com.ruoyi.activiti.service.Candidate;

import java.util.Date;
import java.util.List;

/**
 * @author danghf
 * @version 1.0
 * @date 2024/05/06 14:52
 */
public class IProcessInstance implements Candidate {
    /**
     * 流程实例id
     */
    private String processInstanceId;

    /**
     * 业务key
     */
    private String businessKey;

    /**
     * 流程名称
     */
    private String processDefinitionName;

    /**
     * 流程定义id
     */
    private String processDefinitionId;

    /**
     * 流程版本
     */
    private Long processDefinitionVersion;

    /**
     * 流程部署id
     */
    private String processDeploymentId;

    /**
     * 开始时间
     */
    private Date startTime;

    /**
     * 结束时间(可能未结束)
     */
    private Date endTime;

    /**
     * 持续时间
     */
    private Long durationInMillis;

    /**
     * 流程发起人id
     */
    private Long startUserId;

    /**
     * 流程发起人username
     */
    private String startUsername;

    /**
     * 负责人id(当前节点负责人，如果是结束节点，可以为 null)
     */
    private String assignee;

    /**
     * 负责人名称
     */
    private String assigneeName;

    /**
     * 候选组ids
     */
    private List<Long> candidateGroupIds;

    /**
     * 组名称
     */
    private List<String> candidateGroupNames;

    /**
     * 候选人ids
     */
    private List<Long> candidateUserIds;

    /**
     * 候选人名称
     */
    private List<String> candidateUserNames;

    /**
     * 开始节点id()
     */
    private String startActivitiId;

    /**
     * 结束节点id(可能未结束，或者非正常流程结束导致终止)
     */
    private String endActivitiId;

    /**
     * 当前节点id(如果结束为 null)
     */
    private String currentActivitiId;

    /**
     * 当前节点名称
     */
    private String currentActivitiName;

    /**
     * 终止原因(没有按照正常流程走完)
     */
    private String deleteReason;

    public String getDeleteReason() {
        return deleteReason;
    }

    public void setDeleteReason(String deleteReason) {
        this.deleteReason = deleteReason;
    }

    public String getCurrentActivitiName() {
        return currentActivitiName;
    }

    public void setCurrentActivitiName(String currentActivitiName) {
        this.currentActivitiName = currentActivitiName;
    }

    public String getCurrentActivitiId() {
        return currentActivitiId;
    }

    public void setCurrentActivitiId(String currentActivitiId) {
        this.currentActivitiId = currentActivitiId;
    }

    public String getEndActivitiId() {
        return endActivitiId;
    }

    public void setEndActivitiId(String endActivitiId) {
        this.endActivitiId = endActivitiId;
    }

    public String getStartActivitiId() {
        return startActivitiId;
    }

    public void setStartActivitiId(String startActivitiId) {
        this.startActivitiId = startActivitiId;
    }

    public String getAssigneeName() {
        return assigneeName;
    }

    public void setAssigneeName(String assigneeName) {
        this.assigneeName = assigneeName;
    }

    public String getAssignee() {
        return assignee;
    }

    public void setAssignee(String assignee) {
        this.assignee = assignee;
    }

    public String getStartUsername() {
        return startUsername;
    }

    public void setStartUsername(String startUsername) {
        this.startUsername = startUsername;
    }

    public Long getStartUserId() {
        return startUserId;
    }

    public void setStartUserId(Long startUserId) {
        this.startUserId = startUserId;
    }

    public Long getDurationInMillis() {
        return durationInMillis;
    }

    public void setDurationInMillis(Long durationInMillis) {
        this.durationInMillis = durationInMillis;
    }

    public Date getEndTime() {
        return endTime;
    }

    public void setEndTime(Date endTime) {
        this.endTime = endTime;
    }

    public Date getStartTime() {
        return startTime;
    }

    public void setStartTime(Date startTime) {
        this.startTime = startTime;
    }

    public String getProcessDeploymentId() {
        return processDeploymentId;
    }

    public void setProcessDeploymentId(String processDeploymentId) {
        this.processDeploymentId = processDeploymentId;
    }

    public Long getProcessDefinitionVersion() {
        return processDefinitionVersion;
    }

    public void setProcessDefinitionVersion(Long processDefinitionVersion) {
        this.processDefinitionVersion = processDefinitionVersion;
    }

    public String getProcessDefinitionId() {
        return processDefinitionId;
    }

    public void setProcessDefinitionId(String processDefinitionId) {
        this.processDefinitionId = processDefinitionId;
    }

    public String getProcessDefinitionName() {
        return processDefinitionName;
    }

    public void setProcessDefinitionName(String processDefinitionName) {
        this.processDefinitionName = processDefinitionName;
    }

    public String getBusinessKey() {
        return businessKey;
    }

    public void setBusinessKey(String businessKey) {
        this.businessKey = businessKey;
    }

    public String getProcessInstanceId() {
        return processInstanceId;
    }

    public void setProcessInstanceId(String processInstanceId) {
        this.processInstanceId = processInstanceId;
    }

    public List<Long> getCandidateGroupIds() {
        return candidateGroupIds;
    }

    public void setCandidateGroupIds(List<Long> candidateGroupIds) {
        this.candidateGroupIds = candidateGroupIds;
    }

    public List<String> getCandidateGroupNames() {
        return candidateGroupNames;
    }

    public void setCandidateGroupNames(List<String> candidateGroupNames) {
        this.candidateGroupNames = candidateGroupNames;
    }

    public List<Long> getCandidateUserIds() {
        return candidateUserIds;
    }

    public void setCandidateUserIds(List<Long> candidateUserIds) {
        this.candidateUserIds = candidateUserIds;
    }

    public List<String> getCandidateUserNames() {
        return candidateUserNames;
    }

    public void setCandidateUserNames(List<String> candidateUserNames) {
        this.candidateUserNames = candidateUserNames;
    }
}
